The present application relates to software and more specifically to software-based systems and methods and ontologies for facilitating development and implementation of software processes and subprocesses deployed in networked computing environments.
Software processes deployed in networked computing environments are often implemented via one or more services, such as web services. Mechanisms for facilitating development, implementation, and deployment of such processes are employed in various demanding applications, including Enterprise Resource Planning (ERP), scientific distributed computing applications, and so on. Such applications often demand use of Service Oriented Architectures (SOAs) and accompanying mechanisms and programming language features for efficiently modularizing and reusing process logic to facilitate software development, customization, deployment, and execution in various networked computing environments.
Software modularization and reuse features are particularly important in enterprise computing environments, which are often characterized by complex long-running network-distributed business processes. Web Services Business Process Execution Language (WS-BPEL 2.0, OASIS Standard), generically referred to as standard BPEL, facilitates implementing SOAs and accompanying software that employ web services to implement tasks or activities in a business process. The business process may be part of a larger software application specified via a process template and configuration plan file.
Such business processes may have many repeated portions of code, which may clutter the code, making it difficult to develop, read, understand, maintain, and accurately and consistently modify, update, and deploy. Mechanisms for enabling modularization and reuse of business process logic may aim to address such issues.
However, standard BPEL generally lacks explicit mechanisms for specifying tightly coupled reusable portions of computer code (i.e., reusable process logic fragments or snippets) in a business process, and instead relies upon a loosely coupled web service invocation model, whereby modularized tasks of a parent process are implemented by invoking web services, and whereby the web services are interfaced with the business process via WSDL (Web Services Description Language) interfaces.
Use of web services to modularize and reuse arbitrary portions of computer code can be particularly problematic for low-level repetitive software tasks, which may correspond to process logic fragments or snippets. Refactoring a business process to call web services, such as by replacing low-level process logic fragments with web service invocations, can be inefficient, potentially reducing software performance, increasing network resource consumption, and introducing latency and process life cycle management issues.
Standard BPEL defines a complex life cycle for each individual task within a BPEL-defined process. However, BPEL's web service invocation module generally lacks effective lifecycle management mechanisms for handling process fragments invoked as web services. Accordingly, handling faults, undoing tasks (e.g., compensation activities), canceling tasks, and so on, can be problematic, from both the perspective of a business process and the web service invoked by the business process. For example, in a standard BPEL parent process that invokes a web service, a termination of the parent process may not be communicated to the invoked web service, and termination of the invoked web service may not be communicated to the parent process. In summary, BPEL's mechanisms for handling software faults, selectively undoing certain process tasks (e.g., compensation), for canceling software tasks, and so on, do not automatically extend to invoked web services.
To address certain BPEL process modularization, reuse, and lifecycle management issues, an extension to BPEL, called BPEL-SPE (Web Services Business Process Execution Language—Subprocess Extension) may be used. BPEL-SPE is discussed in a joint white paper by International Business Machines Corp. (IBM) and SAP AG, entitled “WS-BPEL Extension for Subprocesses—BPEL-SPE,” dated September 2005.
This BPEL-SPE extension specifies use of subprocesses to facilitate modularization and reuse of process logic fragments. However, conventional BPEL-SPE still employs a restrictive web service invocation model characterized by WSDL interfaces between the parent process and invoked subprocess. Parent processes and subprocesses are limited to single-variable exchanges via standard BPEL receive and reply activities over the WSDL interfaces. Furthermore, conventional BPEL-SPE requires an additional coordination protocol for status message exchange and life cycle management between a parent process and invoked subprocesses, which can further complicate implementation and increase runtime overhead and associated consumption of computing resources.